From 1ad38030467dbd941f3a859aec3570a939302ec9 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Mon, 5 Mar 2007 11:54:55 +0000 Subject: [PATCH] [XEN] Shadow: fix predicate for when to use up-pointers which was broken by the introduction of "pinnable" types Signed-off-by: Tim Deegan --- xen/arch/x86/mm/shadow/private.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h index 479ed26959..70c7c34010 100644 --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -539,7 +539,7 @@ static inline int sh_get_ref(struct vcpu *v, mfn_t smfn, paddr_t entry_pa) /* We remember the first shadow entry that points to each shadow. */ if ( entry_pa != 0 - && sh_type_is_pinnable(v, sp->type) + && !sh_type_is_pinnable(v, sp->type) && sp->up == 0 ) sp->up = entry_pa; @@ -559,7 +559,7 @@ static inline void sh_put_ref(struct vcpu *v, mfn_t smfn, paddr_t entry_pa) /* If this is the entry in the up-pointer, remove it */ if ( entry_pa != 0 - && sh_type_is_pinnable(v, sp->type) + && !sh_type_is_pinnable(v, sp->type) && sp->up == entry_pa ) sp->up = 0; -- 2.30.2